【C语言】如何从文件中读取数据?

您所在的位置:网站首页 c语言 文件读取加速 【C语言】如何从文件中读取数据?

【C语言】如何从文件中读取数据?

2024-06-14 13:25| 来源: 网络整理| 查看: 265

如何从文件中读取数据?

在C语言中,你可以使用标准库中的函数来从文件中读取数据。下面是一些常用的方法:

使用 fscanf() 读取格式化数据

fscanf() 函数类似于 scanf(),但它从文件中读取数据而不是从标准输入。

c复制代码

#include int main() { FILE *file; int number; float f; char str[100]; file = fopen("data.txt", "r"); if (file == NULL) { perror("Error opening file"); return 1; } // 从文件中读取数据 while (fscanf(file, "%d %f %s", &number, &f, str) == 3) { printf("Read: %d, %f, %s\n", number, f, str); } if (ferror(file)) { perror("Error reading file"); } else { printf("End of file reached.\n"); } fclose(file); return 0; }

在上面的代码中,fscanf() 从文件中读取一个整数、一个浮点数和一个字符串,直到文件结束或出现错误。

使用 fgets() 读取一行

fgets() 函数用于从文件中读取一行文本。

c复制代码

#include #include int main() { FILE *file; char line[100]; file = fopen("text.txt", "r"); if (file == NULL) { perror("Error opening file"); return 1; } // 从文件中读取每一行 while (fgets(line, sizeof(line), file)) { printf("%s", line); } if (ferror(file)) { perror("Error reading file"); } else { printf("End of file reached.\n"); } fclose(file); return 0; }

fgets() 将读取一行,包括换行符(如果有的话),并将其存储在提供的缓冲区中。

使用 fread() 读取二进制数据

如果你需要读取二进制数据或大量的数据块,可以使用 fread() 函数。

c复制代码

#include #define BUFFER_SIZE 10 int main() { FILE *file; int buffer[BUFFER_SIZE]; size_t itemsRead; file = fopen("binary_data.bin", "rb"); if (file == NULL) { perror("Error opening file"); return 1; } // 从文件中读取二进制数据 itemsRead = fread(buffer, sizeof(int), BUFFER_SIZE, file); if (itemsRead > 0) { printf("Read %zu integers: ", itemsRead); for (size_t i = 0; i < itemsRead; ++i) { printf("%d ", buffer[i]); } printf("\n"); } if (ferror(file)) { perror("Error reading file"); } else { printf("End of file reached.\n"); } fclose(file); return 0; }

在上面的代码中,fread() 尝试从文件中读取 BUFFER_SIZE 个整数。fread() 返回实际读取的项数,这个数可能会少于请求的项数,尤其是当接近文件末尾时。

在使用 fread() 时,你通常需要检查返回值以确保读取了预期数量的项。

注意事项 在读取文件时,总是检查返回值以确保操作成功。使用 ferror() 函数来检查是否发生了读取错误。使用 feof() 函数来检查是否已到达文件末尾。在完成文件操作后,使用 fclose() 关闭文件。

这些是从文件中读取数据的几种基本方法。根据你的具体需求和数据格式,你可能需要选择最适合你的方法。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3